import torch
########################
# 自动微分简单api
########################

# 权重 初始权重，给个10
w = torch.tensor(10,requires_grad=True,dtype=torch.float32)

# 定义损失函数
loss = 2 * w**2

# 反向传播,计算梯度，默认会将梯度累加到w.grad中
loss.backward()

# 正常来说要loss.sum().backward()，因为loss可能是一个向量  不能的情况：w = torch.tensor([10,20]...就不能直接使用backward()
# (type(loss.sum()))
# (loss.shape)

# 更新权重 w新 = w旧 - 学习率 * w.grad(第一次求导就是4w)
w.data = w.data - 0.01 * w.grad

print(f'更新后的权重：{w} ')